package javaBase.nowcoder.HJ26_A_字符串排序;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
import java.util.regex.Pattern;
import java.util.stream.Collectors;

//A Famous Saying: Much Ado About Nothing (2012/8).
//A aaAAbc dFgghh: iimM nNn oooos Sttuuuy (2012/8).
public class HJ26 {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String s = br.readLine();
        br.close();
        List<String> collect = Arrays.asList(s.split("")).stream().filter(x ->
                Pattern.compile("[a-zA-Z]").matcher(x).matches()
        ).sorted((o1, o2) -> {
            return o1.toLowerCase().charAt(0) - o2.toLowerCase().charAt(0);

        }).collect(Collectors.toList());
        StringBuilder sb = new StringBuilder();
        for (int j = 0, i = 0; i < s.length(); i++) {
            if (Character.isLetter(s.charAt(i))) {
                sb.append(collect.get(j++));
            } else {
                sb.append(s.charAt(i));
            }
        }
        System.out.println(sb);
    }
}
